<!--
    This source code file contains modifications authored by Microsoft Corporation. 
    All such modifications are copyright (c) Microsoft Corporation. All rights reserved.
-->

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>OData Validator</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <link type="text/css" href="Styles/Site.css" rel="stylesheet" />
    <script src="Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
    <script src="Scripts/datajs-0.0.2.min.js" type="text/javascript"></script>
    <script src="Scripts/knockout-1.3.0beta.js" type="text/javascript"></script>
    <link type="text/css" href="Styles/Site.css" rel="stylesheet" />
      <script type="text/javascript">
          OData.defaultError = function (err) {
              $("#rules-block").append("Error retrieving rules. Please try again later.");
              $(".rules-table").hide();
          };

          $(function () {
              ko.applyBindings(theViewModel);
              theViewModel.loadRules();
          });

          function ruleModel() {
              this.Target = ko.observable();
              this.SpecSection = ko.observable();
              this.Version = ko.observable();
              this.V4Specification = ko.observable();
              this.V4SpecSection = ko.observable();
              this.RuleDescription = ko.observable();
              this.RequirementLevel = ko.observable();
              this.Format = ko.observable();
          };

          // Define Main ViewModel
          var theViewModel = {
              rules: ko.observableArray([]),
              loadRules: function () {
                  var query = "RuleSet/Rules?$filter=Status eq 'Completed'&$orderby=Last_Update desc";
                  OData.read(query, function (data) {
                      theViewModel.rules.removeAll();
                      $.each(data.results, function (x, rule) {
                          theViewModel.rules.push(new ruleModel()
                        .Target(rule.Target)
                        .Version(rule.Version)
                        .SpecSection(rule.SpecSection)
                        .V4Specification(rule.V4Specification)
                        .V4SpecSection(rule.V4SpecSection)
                        .RuleDescription(rule.RuleDescription)
                        .RequirementLevel(rule.RequirementLevel)
                        .Format(rule.Format));
                      });
                  });
              }
          };
    </script>
    <style type="text/css">
        .auto-style1
        {
            width: 471px;
        }
        .auto-style2
        {
            width: 88px;
        }
        .auto-style3
        {
            width: 47px;
        }
        .auto-style4
        {
            width: 104px;
        }
        .auto-style5
        {
            width: 495px;
        }
    </style>
</head>
<body>
    <div id="wrapper">
        <div id="topBar">
        </div>
        <div id="header">
            <div id="version">
                Release - v1.04</div>
            <div id="navigation">
                <ul class="menu">
                    <li><a href=".">Home</a> |</li>
                    <li><a href="about.htm">About</a> |</li>
                    <li>Roadmap |</li>
                    <li><a href="feedback.htm">Feedback</a></li>
                </ul>
            </div>
        </div>
        <div id="infotop">
            <div id="logo">
                <img src="Images/ODataLogo.png" alt="logo" />
            </div>
            <div id="content">
                <h2>
                    Goal</h2>
                <p>
                    The goal with this tool is to enable OData service authors ensure that their service interoperates well with any OData client. 
                    Consumers of the OData protocol can also benefit from this tool by testing OData service implementations that they are building an experience for to pinpoint potential issues.
                </p>
                <p>
                    More detailed intro of OData Validation Tool please refer to the <a href="http://odatavalidation.codeplex.com">Codeplex</a> page.
                </p>
                <h2>
                    Release</h2>
                <div id="Release_Div">
                    <table class="general-table">
                        <thead>
                            <tr>
                                <th class="auto-style3">
                                    Version
                                </th>
                                <th class="auto-style2">
                                    Release Date
                                </th>
                                <th class="auto-style5">
                                    Feature Set
                                </th>
                            </tr>
                        </thead>
                        <tbody id="Release_Tbody">
                            <tr>
                                <td class="auto-style3">V1.04</td>
                                <td class="auto-style2">2014/12/8</td>
                                <td class="auto-style5">
                                    V1.04 is current version.
                                    <br />
                                    <ul>
                                    <li>Official support for Validation of ATOM V4.</li>
                                    <li>Official support Rerun and Reload Feature.</li>
                                    <li>Official support Conformance Level Validation choice box.</li>
                                    <li>Performance improvement of Conformance Level Validation.</li>
                                    <li>Bug Fix.</li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td class="auto-style3">V1.03</td>
                                <td class="auto-style2">2014/8/26</td>
                                <td class="auto-style5">
                                    <ul>
                                    <li style="width: 459px">Official support for Conformance Level Validation with OData Vocabulary.</li>
                                    <li>Bug Fix.</li>
                                    </ul>
                                </td>
                            </tr>
                             <tr>
                                <td class="auto-style3">V1.02</td>
                                <td class="auto-style2">2014/03/31</td>
                                <td class="auto-style5">
                                    <ul>
                                    <li>Official support for Conformance Level Validation.</li>
                                    <li>Bug Fix.</li>
                                    </ul>
                                </td>
                            </tr>
                             <tr>
                                <td class="auto-style3">V1.01</td>
                                <td class="auto-style2">2014/03/25</td>
                                <td class="auto-style5">
                                    <ul>
                                    <li>Official support for validation of JSON V4.</li>
                                    </ul>
                                </td>
                            </tr>
                             <tr>
                                <td class="auto-style3">V1.0</td>
                                <td class="auto-style2">2014/03/21</td>
                                <td class="auto-style5">
                                    <ul>
                                    <li>Official support for validation of JSON/ATOM V3/V2/V1.</li>
                                    </ul>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                    </div>
                <p>
                    The tool can currently validate the following types of OData endpoints:
                </p>
                <ul>
                    <li>Service document (e.g.&nbsp; <a href="http://services.odata.org/V4/TripPinServiceRW">
                        http://services.odata.org/V4/TripPinServiceRW</a> )</li>
                    <li>Metadata document (e.g. <a href="http://services.odata.org/V4/TripPinServiceRW/$metadata">
                        http://services.odata.org/V4/TripPinServiceRW/$metadata</a> )</li>
                    <li>A feed / collection (e.g. <a href="http://services.odata.org/V4/TripPinServiceRW/People">
                        http://services.odata.org/V4/TripPinServiceRW/People</a>) </li>
                    <li>An Entry (e.g. <a href="http://services.odata.org/V4/TripPinServiceRW/People('russellwhyte')">http://services.odata.org/V4/TripPinServiceRW/People('russellwhyte')</a>)</li>
                </ul>
                <p>
                    The following URI constructs are currently not supported:</p>
                <ul>
                    <li>Select, Expand and Format system query options in the endpoint URIs </li>
                    <li>Endpoint URIs pointing to payloads larger than 1 MB </li>
                    <li>Authenticated feeds </li>
                </ul>
                <p>
                    This version of the tool has been validated with the following browsers. Please
                    report any issues on the OData mailing list.</p>
                <ul>
                    <li>Internet Explorer 8 and 9 </li>
                    <li>Firefox 3.6 and 4.0 </li>
                    <li>Chrome 9.0.597.84 and 10.0.648.204 </li>
                    <li>Safari 5.0 </li>
                </ul>
                <h2>
                    What's Next</h2>
                <p>
                Here are the current planned releases, more features are also under planning and will be announced once they are ready:
                </p>
                <div id="Next_Div">
                    <table class="general-table">
                        <thead>
                            <tr>
                                <th class="auto-style3">
                                    Version
                                </th>
                                <th class="auto-style4">
                                    Planned
                                </th>
                                <th class="auto-style1">
                                    Feature Set
                                </th>
                            </tr>
                        </thead>
                        <tbody id="Next_Tbody">
                            <tr>
                                <td class="auto-style3">V1.05</td>
                                <td class="auto-style4">February 2015</td>
                                <td class="auto-style1">
                                    <ul>
                                    <li>Official support for Metadata Validation of V4.</li>
                                    <li>Bug Fix.</li>
                                    </ul>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                    </div>
                <p>
                    OData Validation Tool is updated with the source code 
                    on <a href="http://odatavalidation.codeplex.com">Codeplex</a> on each release date.                
                    Also, you&nbsp; can follow the <a href="http://www.odata.org/blog">OData blog</a> as updates
                    (new rules, features, etc) to this service are announced there.</p>
                <a name="rules"></a>
                <h2>List of Rules</h2>
                <div id="rules-block">
                    <table class="rules-table">
                        <thead>
                            <tr>
                                <th>
                                    Target
                                </th>
                                <th>
                                    Version
                                </th>
                                <th>
                                    [MS-ODATA] Section
                                </th>
                                <th>
                                    V4 Specification
                                </th>
                                <th>
                                    V4 SpecSection
                                </th>
                                <th>
                                    Format
                                </th>
                                <th>
                                    RequirementLevel
                                </th>
                                <th>
                                    Description
                                </th>
                            </tr>
                        </thead>
                        <tbody id="rules" data-bind="foreach: rules">
                            <tr>
                                <td data-bind="text: Target" ></td>
                                <td data-bind="text: Version" ></td>
                                <td data-bind="text: SpecSection" ></td>
                                <td data-bind="text: V4Specification" ></td>
                                <td data-bind="text: V4SpecSection" ></td>
                                <td data-bind="text: Format" ></td>
                                <td data-bind="text: RequirementLevel" ></td>
                                <td data-bind="text: RuleDescription" ></td>
                            </tr>
                        </tbody>
                    </table>
                    </div>
                </div>
            </div>
    </div>

    <!-- START OF SmartSource Data Collector TAG -->
    <!-- Copyright (c) 1996-2009 WebTrends Inc.  All rights reserved. -->
    <!-- Version: MS.3.2.1 -->
    <script src="scripts/wt.js" type="text/javascript"></script>
    <!-- ----------------------------------------------------------------------------------- -->
    <!-- Warning: The two script blocks below must remain inline. Moving them to an external -->
    <!-- JavaScript include file can cause serious problems with cross-domain tracking.      -->
    <!-- ----------------------------------------------------------------------------------- -->
    <script type="text/javascript">
        //<![CDATA[
        var _tag = new WebTrends();
        _tag.dcsid = "dcsc97avu10000kn75ujgpso2_7j5n";
        _tag.fpcdom = ".odata.org";
        _tag.dcsGetId();
        _tag.trackevents = true;
        //]]>>
    </script>
    <script type="text/javascript">
        //<![CDATA[
        // Add custom parameters here.
        //_tag.DCSext.param_name=param_value;
        _tag.dcsCollect();
        //]]>>
    </script>
</body>
<noscript>
    <div>
        <img alt="DCSIMG" id="DCSIMG" width="1" height="1" src="http://m.webtrends.com/dcsc97avu10000kn75ujgpso2_7j5n/njs.gif?dcsuri=/nojavascript&amp;WT.js=No&amp;WT.tv=MS.3.0.0" /></div>
</noscript>
<!-- END OF SmartSource Data Collector TAG -->
</html>

